package com.js.dao;

import com.js.pojo.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface BookDao {

    /**
     * 返回所有书目信息
     * @return 所有的书目信息
     */
    List<Book> listBooks();

    /**
     * 模糊查询
     * @return 查询关键字的书目信息
     */
    List<Book> likeBooks(@Param("subName") String subName);

    /**
     * 根据书名查找一本书的信息
     * @param bookname 书目id
     * @return 一本书的信息
     */
    Book findBookByName(@Param("bookname") String bookname);

    /**
     * 插入新书
     * @param book 要插入的书信息
     * @return
     */
    int addBook(Book book);

    /**
     * 根据id删除书的信息
     * @param bookid 要删除的书目id
     * @return
     */
    int delBook(@Param("bookid") Integer bookid);

    /**
     * 更新一本书的信息
     * @param book 要更新后的新书信息
     * @return
     */
    int updateBook(Book book);

    /**
     * 用户借书
     * @param bookid 书名
     * @return
     */
    int borrowBook(Integer bookid);

    /**
     * 用户还书
     * @param bookid
     * @return
     */
    int returnBook(Integer bookid);

    /**
     * 用户借书存储过程实现
     * @param bookid,userid
     * @return
     */
    int borrowBookProc(@Param("bookid") Integer bookid,@Param("userid") Integer userid);

    /**
     * 用户还书存储过程实现
     * @param bookid,userid
     * @return
     */
    int returnBookProc(@Param("bookid") Integer bookid,@Param("userid") Integer userid);

}
